package grafica.jugador.controladores;
import grafica.moderador.ventanas.VentanaMenuModerador;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

import persistencia.Archivo;
import persistencia.Persistencia;
import persistencia.PersistenciaException;
import logica.excepciones.JugadoresException;
import logica.excepciones.PaisesException;
import logica.excepciones.PartidaException;
import logica.fachadas.Fabrica;
import logica.fachadas.IFabrica;
import logica.fachadas.IFachadaJugadores;
import logica.fachadas.IFachadaModerador;
import grafica.jugador.ventanas.*;
import persistencia.Config;


public class ControladorLogin {
	 private IFachadaJugadores fachadaJugadores;	 
	 private Login login; // Ventana
	 private IFabrica fabrica;

	public ControladorLogin(Login login){		
		this.login= login;		
		try{
			Config conf = Config.getInstancia();
			
			String servidor = conf.getArchivoConf("Servidor");
			int puerto =  Integer.parseInt(conf.getArchivoConf("Puerto"));		
		
			fabrica = (IFabrica)Naming.lookup("//" + servidor +":" + puerto + "/fabrica");						
			fachadaJugadores = fabrica.getFachadaJugador();	

            
		} catch (MalformedURLException e) {			
			e.printStackTrace();
		} catch (NotBoundException e) {
			e.printStackTrace();		
		} catch (RemoteException e) {
			e.printStackTrace();
		} catch (PersistenciaException e) {			
			e.printStackTrace();
		}	
	}	
		
	public void LoginJugador (String nomJugador){		
		boolean error = false;
		try {				
				fachadaJugadores.loginJugador(nomJugador);
				PanelJugador panelJugador = new PanelJugador(nomJugador);
				panelJugador.setVisible(true);
		} catch (RemoteException e) {
				login.setJLabelInfo(e.getMessage());
				error = true;
		} catch (PartidaException e) {
			    login.setJLabelInfo(e.darMensaje());
				error = true;
		}		
		if(error == false){
			login.cerrarVentana();
			//Ir a vista jugador;
		}
		
				
	}		
	

}

